const db = wx.cloud.database();
const app = getApp();

Page({
  data: {
    image: '', // 选择的图片路径
    title: '', // 标题
    content: '' // 详情
  },

  // 选择图片
  chooseImage: function () {
    var that = this;
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'], // 压缩图片
      sourceType: ['album', 'camera'], // 从相册选择或拍照
      success: function (res) {
        that.setData({
          image: res.tempFilePaths[0] // 设置选择的图片路径
        });
      }
    });
  },

  // 输入标题
  handleTitleInput: function (e) {
    this.setData({
      title: e.detail.value // 更新标题数据
    });
  },

  // 输入详情
  handleContentInput: function (e) {
    this.setData({
      content: e.detail.value // 更新详情数据
    });
  },

  // 发布信息公告
  submitAnnouncement: function () {
    const {
      title,
      content
    } = this.data;
    const image = this.data.image;

    // 检查标题和详情是否为空
    if (!title || !content) {
      wx.showToast({
        title: '标题和详情不能为空',
        icon: 'none'
      });
      return;
    }

    // 上传图片到云存储
    const cloudPath = 'announcement-images/' + Date.now() + '-' + Math.floor(Math.random() * 1000) + image.match(/\.[^.]+?$/)[0];
    wx.cloud.uploadFile({
      cloudPath: cloudPath,
      filePath: image,
      success: res => {
        console.log('上传成功', res);
        const imageUrl = res.fileID; // 获取上传后的图片地址

        // 调用云函数
        wx.cloud.callFunction({
          name: 'submit',
          data: {
            title: title,
            content: content,
            image: imageUrl
          },
          success: res => {
            console.log('发布成功', res);
            if (res.result.success) {
              // 清空表单数据
              this.setData({
                image: '',
                title: '',
                content: ''
              });
              // 提示发布成功
              wx.showToast({
                title: '发布成功',
                icon: 'success'
              });

              // 跳转到信息公告列表页面
              wx.switchTab({
                url: '/pages/announcements/announcements',
                success: function (res) {
                  console.log('跳转成功', res);
                  // 触发列表页面的刷新
                  const page = getCurrentPages().pop();
                  if (page == undefined || page == null) return;
                  page.onLoad(); // 确保页面数据重新加载
                },
                fail: function (err) {
                  console.error('跳转失败', err);
                  wx.showToast({
                    title: '页面跳转失败，请稍后重试',
                    icon: 'none'
                  });
                }
              });

            } else {
              wx.showToast({
                title: '发布失败，请稍后重试',
                icon: 'none'
              });
            }
          },
          fail: err => {
            console.error('调用云函数失败', err);
            wx.showToast({
              title: '发布失败，请稍后重试',
              icon: 'none'
            });
          }
        });
      },
      fail: err => {
        console.error('上传失败', err);
        wx.showToast({
          title: '上传失败，请稍后重试',
          icon: 'none'
        });
      }
    });
  },
  // 清空表单数据
  clearForm: function () {
    this.setData({
      image: '',
      title: '',
      content: ''
    });
    wx.showToast({
      title: '表单已清空',
      icon: 'success'
    });
  },
});